home *** CD-ROM | disk | FTP | other *** search
- property pTextColor, pHyperlinkColor
-
- on parseHyperlinks me, aString
- if stringp(aString) then
- clearExistingHyperlinks(me)
- outputString = aString
- linkData = []
- nextTagStart = offset("<a href=" & QUOTE, outputString)
- repeat while nextTagStart > 0
- openTagEnd = offset(QUOTE & ">", outputString)
- tagData = outputString.char[nextTagStart + 9..openTagEnd - 1]
- closeTagStart = offset("</a>", outputString)
- preTagChunk = outputString.char[1..nextTagStart - 1]
- tagChunk = outputString.char[openTagEnd + 2..closeTagStart - 1]
- postTagChunk = outputString.char[closeTagStart + 4..outputString.char.count]
- thisLinkData = [nextTagStart, nextTagStart + tagChunk.char.count, tagData]
- linkData.add(thisLinkData)
- outputString = preTagChunk & tagChunk & postTagChunk
- nextTagStart = offset("<a href=" & QUOTE, outputString)
- end repeat
- myMember = sprite(me.spriteNum).member
- myMember.text = outputString
- myMember.color = rgb(pTextColor)
- if linkData.count > 0 then
- repeat with i = 1 to linkData.count
- myMember.char[linkData[i][1]..linkData[i][2]].hyperlink = linkData[i][3]
- myMember.char[linkData[i][1]..linkData[i][2]].color = rgb(pHyperlinkColor)
- end repeat
- end if
- end if
- end
-
- on clearExistingHyperlinks me
- myMember = sprite(me.spriteNum).member
- repeat while myMember.hyperlinks.count > 0
- myMember.char[myMember.hyperlinks[1][1]..myMember.hyperlinks[1][2]].hyperlink = EMPTY
- end repeat
- end
-
- on mouseWithin me
- if _global.engine.systemMode <> #admin then
- if sprite(me.spriteNum).pointInHyperlink(_mouse.mouseLoc) then
- cursor(280)
- else
- cursor(-1)
- end if
- end if
- end
-
- on hyperlinkClicked me, theData, theRange
- if (theData starts "http://") or (theData starts "mailto:") then
- gotoNetPage(theData)
- else
- if theData starts "page_" then
- _global.engine.gui.jumpToPage(symbol(theData))
- else
- if theData starts "gdb_" then
- tell the stage
- _global.engine.gdbManager.openGdbPopup(symbol(theData))
- end tell
- end if
- end if
- end if
- end
-
- on getPropertyDescriptionList
- desc = [:]
- desc.addProp(#pTextColor, [#format: #string, #default: "#CCCCCC", #comment: "Text color"])
- desc.addProp(#pHyperlinkColor, [#format: #string, #default: "#FFCC00", #comment: "Hyperlink color"])
- return desc
- end
-